﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using DevExpress.XtraEditors;
using RestaurantManager.Components;
using RestaurantManager.BusinessObject;
using RestaurantManager.BusinessLogic;

namespace RestaurantManager
{
    public partial class PhanHeNhaHang : DevExpress.XtraEditors.XtraForm
    {
        // Propresties
        frmDangNhap dangNhap = null;
        frmDoiMK frmDoiMK ;
        UserBUS userBus;
        public PhanHeNhaHang()
        {
            InitializeComponent();
        }

        #region"Cac ham xu ly phan quyen"
        private void DisableMenuLogin(bool logged, int MaNhomND)
        {
            // Neu dang nhap thanh cong thi => tat menu dang nhap
            ItemDangNhap.Enabled = !logged;
            // Neu dang nhap thang cong => bat menu dang xuat
            ItemDangXuat.Enabled = logged;
            ItemDoiMK.Enabled = logged;
            
            ItemQuyen.Enabled = logged;
            ItemRestore.Enabled = logged;
            ItemBackUp.Enabled = logged;
            // Menu nha hang
            ItemHoaDon.Enabled = logged;
            ItemThucDon.Enabled = logged;
            ItemBan.Enabled = logged;
            // Menu nhan vien
            ItemQLNhanVien.Enabled = logged;
            ItemDSNhanVien.Enabled = logged;
            // Menu kho hang 
            ItemQLNguyenLieu.Enabled = logged;
            ItemQLKho.Enabled = logged;
            // Menu Phieu thu chi
            ItemPhieuChi.Enabled = logged;
            ItemPhieuThu.Enabled = logged;
            // Menu bao cao
            ItemBCKho.Enabled = logged;
            ItemBCMuaHang.Enabled = logged;
            ItemBCNhaHang.Enabled = logged;
            switch (MaNhomND)
            {
                case 1: break;
                case 2: HienThiNguoiDung(); break;

            }
        }
        #endregion
        // Phuong thuc hien thi menu tuy thuoc vao nhom nguoi dung
        private void HienThiNguoiDung()
        {
            ItemQuyen.Enabled = false;
            ItemRestore.Enabled = false;
            ItemBackUp.Enabled = false;
            ItemBan.Enabled = false;
            ItemQLNhanVien.Enabled = false;
            ItemQLKho.Enabled = false;
            ItemQLNguyenLieu.Enabled = false;
            ItemBCKho.Enabled = false;
            ItemBCMuaHang.Enabled = false;
            ItemBCNhaHang.Enabled = false;

        }

        private void PhanHeNhaHang_Load(object sender, EventArgs e)
        {
            DisableMenuLogin(false, 1);
        }

        private void ItemDangNhap_Click_1(object sender, EventArgs e)
         {
             toolStrip.Text = "Bạn chưa đăng nhập";
            // Dem so lan dang nhap sai
            int numError = 0;
            userBus = new UserBUS();
        // Tao bien Continue
        Cont:
            // Kiem tra form dang nhap duoc mo hay dong neu dong thi ta new
            if (dangNhap == null || dangNhap.IsDisposed)
                dangNhap = new frmDangNhap();
            if (dangNhap.ShowDialog() == DialogResult.OK)
            {
                // Goi ham dang nhap
                // Gan cho bien user dung chung cho lop Utilities
                string userName = dangNhap.txtTaiKhoan.Text;
                string pass = dangNhap.txtMatKhau.Text;
                // Kiem tra user va password
                if (userName.Equals(""))
                {
                    dangNhap.lblThongBaoDangNhap.Text = "Tài khoản không hợp lệ!";
                    goto Cont;
                }
                if (pass.Equals(""))
                {
                    dangNhap.lblThongBaoDangNhap.Text = "Mật khẩu không hợp lệ!";
                    goto Cont;
                }
                Utilities.user = userBus.LayThongTinUser(userName);

                // Truong hop user va pass khong ton tai
                if (Utilities.user.user.Equals(""))
                {
                    dangNhap.lblThongBaoDangNhap.Text = "Tài khoản không tồn tại!";
                    goto Cont;
                }

                if (Utilities.user.pass != Utilities.MahoaMD5(pass))
                {
                    dangNhap.lblThongBaoDangNhap.Text = "Sai mật khẩu!";
                    numError++;
                    if (numError == 3)
                    {
                        MessageBox.Show("Bạn đăng nhập sai mật khẩu quá 3 lần");
                        this.Close();
                    }
                    goto Cont;
                }
                // Truong hop dang nhap thanh cong set lai user theo quyen truy nhap
                DisableMenuLogin(true, Utilities.user.MaNhom);
                // Gan status cho menu
                toolStrip.Text = Utilities.user.TenNhom + ":" + Utilities.user.HoTen;

            }

        }

        private void ItemDangXuat_Click(object sender, EventArgs e)
        {
            // Khoi tao lai bien user dung chung
            User user = new User();
            Utilities.user = user;
            // Disable menu
            DisableMenuLogin(false, 1);
            toolStrip.Text = "Bạn đã thoát khỏi chương trình";
        }

        private void ItemDoiMK_Click(object sender, EventArgs e)
        {
        Cont:
            if (frmDoiMK == null || frmDoiMK.IsDisposed)
                frmDoiMK = new frmDoiMK();
            
            if (frmDoiMK.ShowDialog() == DialogResult.OK)
            {
                string oldPass = frmDoiMK.txtMKCu.Text;
                string newPass = frmDoiMK.txtMKMoi.Text;
                string renewPass = frmDoiMK.txtXacNhan.Text;
                if (oldPass.Equals("") || newPass.Equals("") || renewPass.Equals(""))
                {
                    frmDoiMK.lblThongBao.Text = "Bạn chưa điền đủ thông tin!";
                    goto Cont;
                }
                if (newPass != renewPass)
                {
                    frmDoiMK.lblThongBao.Text = "Bạn nhập mật khẩu mới không khớp!";
                    goto Cont;
                }
                if (Utilities.MahoaMD5(oldPass) != Utilities.user.pass)
                {
                    frmDoiMK.lblThongBao.Text = "Bạn nhập không đúng mật khẩu cũ!";
                    goto Cont;
                }
                if (userBus.SuaMatKhau(newPass))
                {
                    MessageBox.Show("Đổi mật khẩu thành công");
                    ItemDangNhap_Click_1(sender, e);

                }
            }
           
        }

        private void ItemThoat_Click(object sender, EventArgs e)
        {
            this.Close();
        }

     
      

      
     
    }
}